Routing protocols define how routers disseminate information to other routers in order for any router to determine a route from itself to a number of destinations, or sinks in a network. When a node sends a message to a destination node, the message typically traverses a route from the node to the destination node through one or more intermediary nodes. Each intermediary node typically keeps a table containing: (a) destination nodes and (b) the neighboring node to which the intermediary node should send the message if the intermediary node receives a message destined for the destination node.
To determine what the next neighboring node should be, some traditional routing protocols require each node to keep track of the topology of the network, and/or some sort of metric as to the quality of a route through the neighboring node (e.g., the number of hops to the destination node, link quality, etc.)